package swb.api.com.service;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import swb.api.com.repository.dto.SysRole;

import java.util.List;

public interface SysRoleService {

    /**
     * 分页查询所有角色
     * @param pageable 分页参数
     * @return 角色分页结果
     */
    Page<SysRole> findAll(Pageable pageable);

    /**
     * 保存角色
     * @param role 角色对象
     */
    void save(SysRole role);

    /**
     * 根据角色ID获取菜单ID列表
     * @param roleId 角色ID
     * @return 菜单ID列表
     */
    List<Long> getMenuIdsByRoleId(Long roleId);

    /**
     * 为角色分配菜单
     * @param roleId 角色ID
     * @param menuIds 菜单ID列表
     */
    void assignMenus(Long roleId, List<Long> menuIds);

    /**
     * 根据用户ID获取用户权限列表
     * @param userId 用户ID
     * @return 权限列表
     */
    List<String> getPermissionsByUserId(Long userId);
}
